/**
 * <copyright>
 * </copyright>
 *
 */
package de.sabram.upb.specs.map;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see de.sabram.upb.specs.map.MapFactory
 * @model kind="package"
 * @generated
 */
public interface MapPackage extends EPackage
{
  /**
   * The package name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNAME = "map";

  /**
   * The package namespace URI.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_URI = "http://www.sabram.de/upb/specs/Map";

  /**
   * The package namespace name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_PREFIX = "map";

  /**
   * The singleton instance of the package.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  MapPackage eINSTANCE = de.sabram.upb.specs.map.impl.MapPackageImpl.init();

  /**
   * The meta object id for the '{@link de.sabram.upb.specs.map.impl.TypeMapFileImpl <em>Type Map File</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.sabram.upb.specs.map.impl.TypeMapFileImpl
   * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getTypeMapFile()
   * @generated
   */
  int TYPE_MAP_FILE = 0;

  /**
   * The feature id for the '<em><b>Symbol Mappings</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int TYPE_MAP_FILE__SYMBOL_MAPPINGS = 0;

  /**
   * The feature id for the '<em><b>Rulemapping</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int TYPE_MAP_FILE__RULEMAPPING = 1;

  /**
   * The number of structural features of the '<em>Type Map File</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int TYPE_MAP_FILE_FEATURE_COUNT = 2;

  /**
   * The meta object id for the '{@link de.sabram.upb.specs.map.impl.SymbolMappingImpl <em>Symbol Mapping</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.sabram.upb.specs.map.impl.SymbolMappingImpl
   * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getSymbolMapping()
   * @generated
   */
  int SYMBOL_MAPPING = 1;

  /**
   * The number of structural features of the '<em>Symbol Mapping</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int SYMBOL_MAPPING_FEATURE_COUNT = 0;

  /**
   * The meta object id for the '{@link de.sabram.upb.specs.map.impl.MembersImpl <em>Members</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.sabram.upb.specs.map.impl.MembersImpl
   * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getMembers()
   * @generated
   */
  int MEMBERS = 2;

  /**
   * The feature id for the '<em><b>Idents</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MEMBERS__IDENTS = 0;

  /**
   * The number of structural features of the '<em>Members</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MEMBERS_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link de.sabram.upb.specs.map.impl.RuleMappingImpl <em>Rule Mapping</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.sabram.upb.specs.map.impl.RuleMappingImpl
   * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getRuleMapping()
   * @generated
   */
  int RULE_MAPPING = 3;

  /**
   * The number of structural features of the '<em>Rule Mapping</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE_MAPPING_FEATURE_COUNT = 0;

  /**
   * The meta object id for the '{@link de.sabram.upb.specs.map.impl.RuleImpl <em>Rule</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.sabram.upb.specs.map.impl.RuleImpl
   * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getRule()
   * @generated
   */
  int RULE = 4;

  /**
   * The number of structural features of the '<em>Rule</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE_FEATURE_COUNT = RULE_MAPPING_FEATURE_COUNT + 0;

  /**
   * The meta object id for the '{@link de.sabram.upb.specs.map.impl.RHSImpl <em>RHS</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.sabram.upb.specs.map.impl.RHSImpl
   * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getRHS()
   * @generated
   */
  int RHS = 5;

  /**
   * The feature id for the '<em><b>Elemnts</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RHS__ELEMNTS = 0;

  /**
   * The number of structural features of the '<em>RHS</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RHS_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link de.sabram.upb.specs.map.impl.ElementImpl <em>Element</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.sabram.upb.specs.map.impl.ElementImpl
   * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getElement()
   * @generated
   */
  int ELEMENT = 6;

  /**
   * The number of structural features of the '<em>Element</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ELEMENT_FEATURE_COUNT = 0;

  /**
   * The meta object id for the '{@link de.sabram.upb.specs.map.impl.RuleNameImpl <em>Rule Name</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.sabram.upb.specs.map.impl.RuleNameImpl
   * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getRuleName()
   * @generated
   */
  int RULE_NAME = 7;

  /**
   * The number of structural features of the '<em>Rule Name</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE_NAME_FEATURE_COUNT = RULE_MAPPING_FEATURE_COUNT + 0;

  /**
   * The meta object id for the '{@link de.sabram.upb.specs.map.impl.IdentImpl <em>Ident</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.sabram.upb.specs.map.impl.IdentImpl
   * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getIdent()
   * @generated
   */
  int IDENT = 8;

  /**
   * The feature id for the '<em><b>Members</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int IDENT__MEMBERS = SYMBOL_MAPPING_FEATURE_COUNT + 0;

  /**
   * The feature id for the '<em><b>Rhs</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int IDENT__RHS = SYMBOL_MAPPING_FEATURE_COUNT + 1;

  /**
   * The feature id for the '<em><b>Ref</b></em>' reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int IDENT__REF = SYMBOL_MAPPING_FEATURE_COUNT + 2;

  /**
   * The number of structural features of the '<em>Ident</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int IDENT_FEATURE_COUNT = SYMBOL_MAPPING_FEATURE_COUNT + 3;


  /**
   * Returns the meta object for class '{@link de.sabram.upb.specs.map.TypeMapFile <em>Type Map File</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Type Map File</em>'.
   * @see de.sabram.upb.specs.map.TypeMapFile
   * @generated
   */
  EClass getTypeMapFile();

  /**
   * Returns the meta object for the containment reference list '{@link de.sabram.upb.specs.map.TypeMapFile#getSymbolMappings <em>Symbol Mappings</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Symbol Mappings</em>'.
   * @see de.sabram.upb.specs.map.TypeMapFile#getSymbolMappings()
   * @see #getTypeMapFile()
   * @generated
   */
  EReference getTypeMapFile_SymbolMappings();

  /**
   * Returns the meta object for the containment reference list '{@link de.sabram.upb.specs.map.TypeMapFile#getRulemapping <em>Rulemapping</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Rulemapping</em>'.
   * @see de.sabram.upb.specs.map.TypeMapFile#getRulemapping()
   * @see #getTypeMapFile()
   * @generated
   */
  EReference getTypeMapFile_Rulemapping();

  /**
   * Returns the meta object for class '{@link de.sabram.upb.specs.map.SymbolMapping <em>Symbol Mapping</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Symbol Mapping</em>'.
   * @see de.sabram.upb.specs.map.SymbolMapping
   * @generated
   */
  EClass getSymbolMapping();

  /**
   * Returns the meta object for class '{@link de.sabram.upb.specs.map.Members <em>Members</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Members</em>'.
   * @see de.sabram.upb.specs.map.Members
   * @generated
   */
  EClass getMembers();

  /**
   * Returns the meta object for the containment reference list '{@link de.sabram.upb.specs.map.Members#getIdents <em>Idents</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Idents</em>'.
   * @see de.sabram.upb.specs.map.Members#getIdents()
   * @see #getMembers()
   * @generated
   */
  EReference getMembers_Idents();

  /**
   * Returns the meta object for class '{@link de.sabram.upb.specs.map.RuleMapping <em>Rule Mapping</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Rule Mapping</em>'.
   * @see de.sabram.upb.specs.map.RuleMapping
   * @generated
   */
  EClass getRuleMapping();

  /**
   * Returns the meta object for class '{@link de.sabram.upb.specs.map.Rule <em>Rule</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Rule</em>'.
   * @see de.sabram.upb.specs.map.Rule
   * @generated
   */
  EClass getRule();

  /**
   * Returns the meta object for class '{@link de.sabram.upb.specs.map.RHS <em>RHS</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>RHS</em>'.
   * @see de.sabram.upb.specs.map.RHS
   * @generated
   */
  EClass getRHS();

  /**
   * Returns the meta object for the containment reference list '{@link de.sabram.upb.specs.map.RHS#getElemnts <em>Elemnts</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Elemnts</em>'.
   * @see de.sabram.upb.specs.map.RHS#getElemnts()
   * @see #getRHS()
   * @generated
   */
  EReference getRHS_Elemnts();

  /**
   * Returns the meta object for class '{@link de.sabram.upb.specs.map.Element <em>Element</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Element</em>'.
   * @see de.sabram.upb.specs.map.Element
   * @generated
   */
  EClass getElement();

  /**
   * Returns the meta object for class '{@link de.sabram.upb.specs.map.RuleName <em>Rule Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Rule Name</em>'.
   * @see de.sabram.upb.specs.map.RuleName
   * @generated
   */
  EClass getRuleName();

  /**
   * Returns the meta object for class '{@link de.sabram.upb.specs.map.Ident <em>Ident</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Ident</em>'.
   * @see de.sabram.upb.specs.map.Ident
   * @generated
   */
  EClass getIdent();

  /**
   * Returns the meta object for the containment reference list '{@link de.sabram.upb.specs.map.Ident#getMembers <em>Members</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Members</em>'.
   * @see de.sabram.upb.specs.map.Ident#getMembers()
   * @see #getIdent()
   * @generated
   */
  EReference getIdent_Members();

  /**
   * Returns the meta object for the containment reference '{@link de.sabram.upb.specs.map.Ident#getRhs <em>Rhs</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Rhs</em>'.
   * @see de.sabram.upb.specs.map.Ident#getRhs()
   * @see #getIdent()
   * @generated
   */
  EReference getIdent_Rhs();

  /**
   * Returns the meta object for the reference '{@link de.sabram.upb.specs.map.Ident#getRef <em>Ref</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the reference '<em>Ref</em>'.
   * @see de.sabram.upb.specs.map.Ident#getRef()
   * @see #getIdent()
   * @generated
   */
  EReference getIdent_Ref();

  /**
   * Returns the factory that creates the instances of the model.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the factory that creates the instances of the model.
   * @generated
   */
  MapFactory getMapFactory();

  /**
   * <!-- begin-user-doc -->
   * Defines literals for the meta objects that represent
   * <ul>
   *   <li>each class,</li>
   *   <li>each feature of each class,</li>
   *   <li>each enum,</li>
   *   <li>and each data type</li>
   * </ul>
   * <!-- end-user-doc -->
   * @generated
   */
  interface Literals
  {
    /**
     * The meta object literal for the '{@link de.sabram.upb.specs.map.impl.TypeMapFileImpl <em>Type Map File</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.sabram.upb.specs.map.impl.TypeMapFileImpl
     * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getTypeMapFile()
     * @generated
     */
    EClass TYPE_MAP_FILE = eINSTANCE.getTypeMapFile();

    /**
     * The meta object literal for the '<em><b>Symbol Mappings</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference TYPE_MAP_FILE__SYMBOL_MAPPINGS = eINSTANCE.getTypeMapFile_SymbolMappings();

    /**
     * The meta object literal for the '<em><b>Rulemapping</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference TYPE_MAP_FILE__RULEMAPPING = eINSTANCE.getTypeMapFile_Rulemapping();

    /**
     * The meta object literal for the '{@link de.sabram.upb.specs.map.impl.SymbolMappingImpl <em>Symbol Mapping</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.sabram.upb.specs.map.impl.SymbolMappingImpl
     * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getSymbolMapping()
     * @generated
     */
    EClass SYMBOL_MAPPING = eINSTANCE.getSymbolMapping();

    /**
     * The meta object literal for the '{@link de.sabram.upb.specs.map.impl.MembersImpl <em>Members</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.sabram.upb.specs.map.impl.MembersImpl
     * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getMembers()
     * @generated
     */
    EClass MEMBERS = eINSTANCE.getMembers();

    /**
     * The meta object literal for the '<em><b>Idents</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference MEMBERS__IDENTS = eINSTANCE.getMembers_Idents();

    /**
     * The meta object literal for the '{@link de.sabram.upb.specs.map.impl.RuleMappingImpl <em>Rule Mapping</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.sabram.upb.specs.map.impl.RuleMappingImpl
     * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getRuleMapping()
     * @generated
     */
    EClass RULE_MAPPING = eINSTANCE.getRuleMapping();

    /**
     * The meta object literal for the '{@link de.sabram.upb.specs.map.impl.RuleImpl <em>Rule</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.sabram.upb.specs.map.impl.RuleImpl
     * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getRule()
     * @generated
     */
    EClass RULE = eINSTANCE.getRule();

    /**
     * The meta object literal for the '{@link de.sabram.upb.specs.map.impl.RHSImpl <em>RHS</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.sabram.upb.specs.map.impl.RHSImpl
     * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getRHS()
     * @generated
     */
    EClass RHS = eINSTANCE.getRHS();

    /**
     * The meta object literal for the '<em><b>Elemnts</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference RHS__ELEMNTS = eINSTANCE.getRHS_Elemnts();

    /**
     * The meta object literal for the '{@link de.sabram.upb.specs.map.impl.ElementImpl <em>Element</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.sabram.upb.specs.map.impl.ElementImpl
     * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getElement()
     * @generated
     */
    EClass ELEMENT = eINSTANCE.getElement();

    /**
     * The meta object literal for the '{@link de.sabram.upb.specs.map.impl.RuleNameImpl <em>Rule Name</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.sabram.upb.specs.map.impl.RuleNameImpl
     * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getRuleName()
     * @generated
     */
    EClass RULE_NAME = eINSTANCE.getRuleName();

    /**
     * The meta object literal for the '{@link de.sabram.upb.specs.map.impl.IdentImpl <em>Ident</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.sabram.upb.specs.map.impl.IdentImpl
     * @see de.sabram.upb.specs.map.impl.MapPackageImpl#getIdent()
     * @generated
     */
    EClass IDENT = eINSTANCE.getIdent();

    /**
     * The meta object literal for the '<em><b>Members</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference IDENT__MEMBERS = eINSTANCE.getIdent_Members();

    /**
     * The meta object literal for the '<em><b>Rhs</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference IDENT__RHS = eINSTANCE.getIdent_Rhs();

    /**
     * The meta object literal for the '<em><b>Ref</b></em>' reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference IDENT__REF = eINSTANCE.getIdent_Ref();

  }

} //MapPackage
